#include "config.h"
#include <string.h>
#include <stdio.h>
#include <stdarg.h>

#include "xIPC.h"
#include "aux_types.h"
#include "aux_errno.h"
#include "aux_debugmsg.h"
#include "aux_time.h"

EErrNo aux_prt_err(const char *pStrFmt,...)
{
    va_list args;
    u64 llTime;

#ifndef ENABLE_PRINTF
    return ERRNO_SUCCESS;
#endif

    aux_get_timestamp_ms(&llTime);
    printf("\n[%llu]--->", llTime);
    va_start(args, pStrFmt);
    vprintf(pStrFmt, args);
    va_end(args);
    printf("<---[%llu]\n", llTime);
    return ERRNO_SUCCESS;
}

EErrNo aux_prt_warn(const char *pStrFmt,...)
{
        va_list args;
        u64 llTime;

#ifndef ENABLE_PRINTF
        return ERRNO_SUCCESS;
#endif

        aux_get_timestamp_ms(&llTime);
        printf("\n[%llu]--->", llTime);
        va_start(args, pStrFmt);
        vprintf(pStrFmt, args);
        va_end(args);
        printf("<---[%llu]\n", llTime);
        return ERRNO_SUCCESS;

}

EErrNo aux_prt_debug(const char *pStrFmt,...)
{
        va_list args;
        u64 llTime;

#ifndef ENABLE_PRINTF
        return ERRNO_SUCCESS;
#endif

        aux_get_timestamp_ms(&llTime);
        printf("\n[%llu]--->", llTime);
        va_start(args, pStrFmt);
        vprintf(pStrFmt, args);
        va_end(args);
        printf("<---[%llu]\n", llTime);
        return ERRNO_SUCCESS;

}

EErrNo aux_prt_debug_array(u8 *pbyData, u32 nCnt)
{
    u8  byCnt = 0;
    u32 nIndex = 0;

    if (!pbyData || !nCnt)
        return ERRNO_SUCCESS;

    while (nCnt > 0)
    {
        aux_prt_debug("0x%x ", pbyData[nIndex]);
        nIndex++;
        nCnt--;
        if (0 == nIndex % 30)
            aux_prt_debug("\n");
    }
    aux_prt_debug("\n");
    return ERRNO_SUCCESS;
}


